package dom

/**
DOM XML Level 3
see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-E067D597
*/

/*
see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-667469212
*/
type CDATASection interface {
	Text
}

/*
see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-412266927
*/
type DocumentType interface {
	Node
	Name() string
	Entities() NamedNodeMap
	Notations() NamedNodeMap
	PublicId() string       //Introduced in DOM Level 2
	SystemId() string       //Introduced in DOM Level2
	InternalSubset() string //Introduced in DOM Level 2
}

/*
see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-5431D1B9
*/
type Notation interface {
	PublicId() string
	SystemId() string
}

/*
see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-527DCFF2
*/
type Entity interface {
	Node
	PublicId() string
	SystemId() string
	NotationName() string  // Introduced in DOM Level 3
	InputEncoding() string // Introduced in DOM Level 3
	XmlEncoding() string   // Introduced in DOM Level 3
	XmlVersion() string    // Introduced in DOM Level 3
}

/*
see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-11C98490
*/
type EntityReference interface {
	Node
}

/*
see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-1004215813
*/
type ProcessingInstruction interface {
	Node
	Target() string
	Data() string
	SetData(string) DOMException
}
